/*
 * @Author: your name
 * @Date: 2020-05-06 09:50:38
 * @LastEditTime: 2020-06-27 12:07:18
 * @LastEditors: Please set LastEditors
 * @Description: In User Settings Edit
 * @FilePath: \museweb\src\main.js
 */ 
// Vue
import Vue from 'vue'
import i18n from './i18n'
import App from './App'
// 核心插件
import d2Admin from '@/plugin/d2admin'
// store
import store from '@/store/index'
// import _ from "lodash";
// import lodash from 'lodash'
// 菜单和路由设置
import router from './router'
import menuHeader from '@/menu/header'
import { frameInRoutes } from '@/router/routes'
import util from '@/libs/util.js'
import echarts from 'echarts'
import Navigation from '@/plugin/vue-navigation'
import VueSocketIO from 'vue-socket.io'

// 图片预览
import '@/plugin/viewer'

// 过滤器
import '@/libs/util.filters.js'

// [ 可选插件 ] 数据导入导出
// import pluginExport from '@d2-projects/vue-table-export'
// import pluginImport from '@d2-projects/vue-table-import'
// import Print from 'vue-print-nb'
// process.env.Mock && require('mock.js')
if (process.env.NODE_ENV == 'development'){
  // require('mock.js')
}
Vue.prototype.$echarts = echarts

// 核心插件
Vue.use(d2Admin)
Vue.use(Navigation, {router,store})
// Vue.use(Print);

// Vue.use(pluginExport)
// Vue.use(pluginImport)

// Vue.use(new VueSocketIO({
//   // 控制台调试 console.log
//   debug: true,
//   // 连接地址 后端提供
//   connection: 'http://1.15.92.12:6003',
//   // connection: 'http://localhost:6003',
//   // vuex，不需要则不加
//   // vuex: {
//   //   store,
//   //   mutationPrefix: "SOCKET_",
//   //   actionPrefix: "SOCKET_"
//   // }
// }))


new Vue({
  router,
  store,
  i18n,
  render: h => h(App),
  created() {
    // 处理路由 得到每一级的路由设置
    this.$store.commit('d2admin/page/init', frameInRoutes)
    // 设置顶栏菜单
    this.$store.commit('d2admin/menu/headerSet', menuHeader)
    // 设置侧边栏菜单
    let token = util.cookies.get('token');

    if (token) {
      this.$store.dispatch('d2admin/menu/asideSet',2)
    } else {
      this.$store.dispatch('d2admin/menu/asideSet',1)
    }
    // 初始化菜单搜索功能
    this.$store.commit('d2admin/search/init', menuHeader)
  },
  mounted () {

    // 展示系统信息
    this.$store.commit('d2admin/releases/versionShow')
    // 用户登录后从数据库加载一系列的设置
    this.$store.dispatch('d2admin/account/load')
    // 获取并记录用户 UA
    this.$store.commit('d2admin/ua/get')
    // 初始化全屏监听
    this.$store.dispatch('d2admin/fullscreen/listen')

  }
}).$mount('#app')
